This specification relates to file systems.
Requests for particular file operations, for example to read a file, are sent to the operating system kernel (e.g., using a system call). The kernel manages resources (e.g., system hardware as well as particular information such as a database record) available to perform the operations. The kernel allocates resources for performing the requested operation. Conventionally, resources can only be used by a single process at a time. When two processes are running, they can each be waiting for an event of the other to occur in order to proceed. For example, the event that each process is waiting for can be the release of a respective recourse currently possessed by the other process. However, since both processes are waiting for the other, neither will cause the event. This results in a deadlock.